/**
 * 
 */
package br.com.jspl.app.ui;

import java.awt.Point;
import java.io.Serializable;

import br.com.jspl.app.devices.Cabo;
import br.com.jspl.app.devices.Componente;
import br.com.jspl.app.devices.conexao;

/**
 * @author cxavier
 *
 */
public class ComponenteGravacao implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 5256376557013687407L;
	protected MiniConexao[] EntradasSaidas;
	private Point PInicioComponente;
	private Class classe;	
	private Point CaboEntrada, CaboSaida;
	
	public conexao[] getEntradasSaidas() {
		conexao[] ret;
	  	int qtdEnt =  EntradasSaidas.length;
		ret = new conexao[qtdEnt];
		for (int x=0;x<qtdEnt;x++)
			ret[x] = new conexao(EntradasSaidas[x].getPontonoGride(),EntradasSaidas[x].getTipo());		
  		return ret;
	}
	
	public void setEntradasSaidas(conexao[] entradasSaidas) {		
		//EntradasSaidas = entradasSaidas;		
		int qtdEnt =  entradasSaidas.length;
		EntradasSaidas = new MiniConexao[qtdEnt];
		for (int x=0;x<qtdEnt;x++) {
			EntradasSaidas[x] = new MiniConexao();
			EntradasSaidas[x].setPontonoGride(entradasSaidas[x].getPontonoGride());
			EntradasSaidas[x].setTipo(entradasSaidas[x].getTipo() );
		}
	}
	
	public Point getPInicioComponente() {
		return PInicioComponente;
	}
	
	public void setPInicioComponente(Point inicioComponente) {
		PInicioComponente = inicioComponente;
	}
	
	public void preeche(Componente c) {
		if (c instanceof Cabo) {
			CaboEntrada = new Point(c.getEntradasSaidas()[0].getPontonoGride());
			CaboSaida =  new Point(c.getEntradasSaidas()[1].getPontonoGride());
		}
		else {
			setPInicioComponente(c.getPInicioComponente());
		}
		setEntradasSaidas(c.getEntradasSaidas());	
		classe = c.getClass();
	}
	
	public Class getClasse() {
		return classe;
	}
	
	public void setClasse(Class classe) {
		this.classe = classe;
	}
	
	public Point getCaboEntrada() {
		return CaboEntrada;
	}
	
	public Point getCaboSaida() {
		return CaboSaida;
	}
}
